package com.ctiot.aep.mq.msgpush.demo;

import java.util.concurrent.TimeUnit;

import com.ctiot.aep.mqmsgpush.sdk.IMsgConsumer;
import com.ctiot.aep.mqmsgpush.sdk.IMsgListener;
import com.ctiot.aep.mqmsgpush.sdk.MqMsgConsumer;

/**
 * Aep MQ消息推送接收Demo
 *
 */
public class Demo {
	public static void main(String[] args) {
		String server = "server:port"; //消息服务地址
		String tenantId = "xxx";//租户ID
		String token = "xxx";//身份认证token串
		String certFilePath = "xxx"; //证书地址，如e:\\xxx.crt
		
		//创建消息接收Listener
		IMsgListener msgListener = new IMsgListener() {

			@Override
			public void onMessage(String msg) {
				//接收消息
				System.out.println(msg);
				//消息处理...
				//为了提高效率，建议对消息进行异步处理（使用其它线程、发送到Kafka等）
			}
		};
		
		
		//创建消息接收类
		IMsgConsumer consumer = new MqMsgConsumer();
		try {
			//初始化
			/**
			 * @param server  消息服务server地址
			 * @param tenantId 租户Id
			 * @param token    用户认证token
			 * @param certFilePath 证书文件路径
			 * @param topicNames   主题名列表，如果该列表为空或null，则自动消费该租户所有主题消息
			 * @param msgListener 消息接收者
			 * @return 是否初始化成功
			 */
			consumer.init(server, tenantId, token, certFilePath, null, msgListener);

			//开始接收消息
			consumer.start();

			//程序退出时，停止接收、销毁
			//consumer.stop();
			//consumer.destroy();
		} catch (Exception e) {
			e.printStackTrace();
		}

		System.out.println("exit");
	}
}
